The present invention relates generally to the field of computer networking. More particularly, the present invention relates to the field of data packet transmissions within an Ethernet network.
Computers have become an integral tool used in a wide variety of different applications, such as in finance and commercial transactions, computer-aided design and manufacturing, health care, telecommunication, education, etc. Computers are also finding new applications as a result of advances in hardware technology and rapid development in software technology. Furthermore, a computer system""s functionality is dramatically enhanced by coupling stand-alone computers together to form a computer network. In a computer network, users may readily exchange files, share information stored on a common database, pool resources, and communicate via electronic mail (e-mail) and via video teleconferencing.
One popular type of computer network is known as a local area network (LAN). LANs connect multiple computers together such that the users of the computers can access the same information and share data. Typically, in order to be connected to a LAN, a general purpose computer requires an expansion board generally known as a Network Interface Card (NIC). Essentially, the NIC works with the operating system and Central Processing Unit (CPU) of a host computer to control the flow of information over the LAN. Some NICs may also be used to connect a computer to the Internet.
Typically, NICs are also used to communicate over a LAN communications network standard referred to as Ethernet. It is appreciated that if two NICs coupled to an Ethernet network each try to transmit a packet or frame of data at the same time within a half duplex network, a collision of those packets occurs. As such, each NIC involved in the collision backs off a random amount of time before trying to retransmit their respective data packet. Within the Ethernet network, each half duplex NIC is allowed 16 collisions to transmit a current data packet before discarding it in order to begin transmitting a subsequent data packet. Furthermore, as the number of collisions of a particular data packet increases within the Ethernet network, the half duplex NIC has an increased possibility of backing off for a longer amount time.
It should be appreciated that more and more half duplex NICs can be coupled to the Ethernet network enabling more and more computers to access the same information and share data. But there are disadvantages associated with numerous half duplex NICs being coupled to the Ethernet network. One of the main disadvantages is that as more and more half duplex NICs are coupled to the Ethernet network, there is an increased possibility of more and more data packet collisions thereby resulting in a more congested network. As such, a half duplex NIC of a particular computer (e.g., file server) which handles a high volume of data packet traffic is unable to efficiently transmit its data packets because of an increased occurrence of data packet collisions.
Accordingly, a need exists for a method and system for providing transmission priority to a half duplex Network Interface Card (NIC) of a particular computer station (e.g., file server) which is coupled to a congested Ethernet network.
Embodiments of the present invention provide a method and system for providing transmission priority to a half duplex Network Interface Card (NIC) of a particular computer station (e.g., file server) which is coupled to a congested Ethernet network. Furthermore, embodiments of the present invention provide a method and system which achieves the above accomplishment and also provides a method and system to dynamically adjust the maximum back off time of a half duplex NIC coupled to an Ethernet network.
Specifically, one embodiment of the present invention includes a method for providing priority to a peripheral component (e.g., half duplex Network Interface Card) in a congested network. The method includes the step of determining a maximum back off time limit based on a number of collisions a first data packet encounters before being transmitted over a network. Furthermore, the method includes the step of detecting a collision of a second data packet during transmission of the second data packet by the peripheral component coupled to the network. Additionally, the method also includes the step of determining a back off time. It should be appreciated that the back off time is substantially equal to or less than the maximum back off time limit. Moreover, the method includes the step of causing the peripheral component to wait the back off time before trying to retransmit the second data packet over the network.
In another embodiment, the present invention includes a computer system. The computer system includes a processor, an addressable data bus coupled to the processor, and a computer usable memory coupled to communicate with the processor for performing a method for providing priority to a peripheral component (e.g., half duplex Network Interface Card) coupled to a network. Specifically, the method includes the step of determining a maximum back off time limit based on a number of collisions a first data packet encounters before being transmitted over the network. Furthermore, the method includes the step of detecting a collision of a second data packet during transmission of the second data packet by the peripheral component coupled to the network. Additionally, the method includes the step of ascertaining a back off time. It should be appreciated that the back off time is substantially equal to or less than the maximum back off time limit.
In still another embodiment, the present invention includes a computer readable medium having computer readable code embodied therein for enabling a peripheral component coupled to a network to gain priority. Specifically, the computer readable medium causes the peripheral component to perform the step of ascertaining a maximum back off time limit based on a number of collisions a first data packet encounters before being transmitted over the network. Furthermore, the computer readable medium causes the peripheral component to perform the step of detecting a collision of a second data packet during transmission of the second data packet by the peripheral component coupled to the network. Moreover, the computer readable medium causes the peripheral component to perform the step of ascertaining a back off time. It should be appreciated that the back off time is substantially equal to or less than the maximum back off time limit. Additionally, the computer readable medium causes the peripheral component to perform the step of causing the peripheral component to wait the back off time before trying to retransmit the second data packet over the network.
These and other advantages of the present invention will no doubt become obvious to those of ordinary skill in the art after having read the following detailed description of the preferred embodiments which are illustrated in the drawing figures.